﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data;

namespace SAD
{
    class Class1
    {
        Voluntario []Voluntarios;
        List<Voluntario> voluntarios;
         string cadena;
        string consulta;
        string nuevoid; 
        string idRol;
        public static SqlConnection connection;
        static private Conexion conexionBD = new Conexion();

        private String GenerarIDVoluntario()
        {
            string consulta = "SELECT SUSTRING(MAX(idVoluntario),4,7) FROM VOLUNTARIO";
            SqlDataReader dataReader = conexionBD.EjecutarReader(consulta);
            dataReader.Read();
            string aux = dataReader[0] + "";
            int r;
            if (aux == "") r = 1;
            else r = Convert.ToInt32(aux) + 1;

            string id = r.ToString();
            int nrodig = id.Length;

            for (int i = 1; i <= 7 - nrodig; i++)
                id = "0" + id;
            id = "VOL" + id;
            dataReader.Close();
            return id;
        }
        private String GenerarIDVoluntarioXemergencia()
        {
            string consulta = "SELECT SUSTRING(MAX(idVoluntario),4,7) FROM VOLUNTARIO";
            SqlDataReader dataReader = conexionBD.EjecutarReader(consulta);
            dataReader.Read();
            string aux = dataReader[0] + "";
            int r;
            if (aux == "") r = 1;
            else r = Convert.ToInt32(aux) + 1;

            string id = r.ToString();
            int nrodig = id.Length;

            for (int i = 1; i <= 7 - nrodig; i++)
                id = "0" + id;
            id = "VOL" + id;
            dataReader.Close();
            return id;
        }
        public void registrarVoluntario(Voluntario voluntario) {


                nuevoid = GenerarIDVoluntario();
                //idRol=convertirRol(voluntario.nombreRol);
                

                // El valor que necesitamos es el ID
              consulta = "INSERT INTO VOLUNTARIO (idVoluntario, nombre, apellido, dni, telefono, email, idUbicacion,idRol,idEstado)" +
                                      "VALUES" + "(@vol,@nom,@ape,@dni,@tel,@ema,@idu,@idr,@ide);";


              connection = new SqlConnection(conexionBD.Cadenaconexion());


              SqlCommand cmd = new SqlCommand(consulta, connection);

              connection.Open();
             // String   cadena = sadconexion.CadenaConexion();
           //  SqlConnection con = new SqlConnection(cadena);
                // Abrimos la conexión
                
                // Añadimos el valor del parámetro de la consulta
            
              voluntario.IdVoluntario=nuevoid;
                cmd.Parameters.AddWithValue("@vol", nuevoid);
                cmd.Parameters.AddWithValue("@nom", voluntario.Nombre);
                cmd.Parameters.AddWithValue("@ape", voluntario.Apellido);
                cmd.Parameters.AddWithValue("@dni", voluntario.Dni);
                cmd.Parameters.AddWithValue("@tel", voluntario.Telefono);
                cmd.Parameters.AddWithValue("@ema",voluntario.Email);
                cmd.Parameters.AddWithValue("@idu", voluntario.Ubicacion);
                cmd.Parameters.AddWithValue("@idr", voluntario.IdRol);
                cmd.Parameters.AddWithValue("@ide", voluntario.IdEstado);

               cmd.ExecuteNonQuery();


                try
                {
                    //cmd.ExecuteNonQuery();
                    // MessageBox.Show("Entra antes de ejecutar");
                    cmd.ExecuteNonQuery();


                    MessageBox.Show("SAD NOTIFICA-Se ejecuto el query");
                }
                catch
                {
                    MessageBox.Show("SAD ALERTA-No se ejecuto el query");

                }

        }


         private  string convertirRol(string nombreRol){
            String consulta = "SELECT IDROL FROM ROL WHERE NOMBRE LIKE '%" + nombreRol + "%'";
            SqlDataReader dataReader = conexionBD.EjecutarReader(consulta);
            dataReader.Read();
            
            string aux = dataReader[0] + "";
            
            if (aux!= "") return aux;
            else return null;
            
        }


          public Voluntario BuscarVoluntarioCodigo(string idVoluntario)
        {
            string consulta = "SELECT * FROM VOLUNTARIO WHERE idVoluntario = " + "\'" + @idVoluntario + "\'" + ";";
            SqlDataReader dataReader = conexionBD.EjecutarReader(consulta);
            while (dataReader.Read())
            {
                Voluntario voluntario = new Voluntario();
                 
                 voluntario.IdVoluntario=dataReader[0].ToString();
                 voluntario.Nombre=dataReader[1].ToString();
                voluntario.Apellido=dataReader[2].ToString();
                 voluntario.Dni=dataReader[3].ToString();
                 voluntario.Telefono=dataReader[4].ToString();
                 voluntario.Email=dataReader[5].ToString();
                voluntario.Ubicacion=dataReader[6].ToString();
               
                voluntario.IdRol=dataReader[7].ToString();
                  voluntario.IdEstado=dataReader[8].ToString();
                //Donde se asigna la ocurrencia al objeto creado?
                return voluntario;
            }

            return null;
        }

          public List<Voluntario> sacaVoluntarios(){

           //List<Voluntario> auxiliar= new Voluntario();
              voluntarios=new List<Voluntario>();

           string consulta="SELECT * FROM VOLUNTARIO;";
              SqlDataReader dataReader = conexionBD.EjecutarReader(consulta);
              int i=0;
              while (dataReader.Read()){
              
                 Voluntario voluntario = new Voluntario();

                 voluntario.IdVoluntario=dataReader[0].ToString();
                 voluntario.Nombre=dataReader[1].ToString();
                  voluntario.Apellido=dataReader[2].ToString();
                 voluntario.Dni=dataReader[3].ToString();
                 voluntario.Telefono=dataReader[4].ToString();
                  voluntario.Email=dataReader[5].ToString();
                 voluntario.Ubicacion=dataReader[6].ToString();
                  voluntario.IdRol=dataReader[7].ToString();
                  voluntario.IdEstado=dataReader[8].ToString();

                  voluntarios.Add(voluntario);

                 // auxiliar[i]=voluntario;
                 // i++;
              
              }
              return voluntarios;
          
          
          }

         public void asignarvoluntarios(List<Voluntario>vol,Emergencia emer){
         
             
              for (int i=0;i<=vol.Count;i++ ){
                   registrarVoluntarioxEmergencia(vol[i], emer);
              }
         
         }  

            public void registrarVoluntarioxEmergencia(Voluntario voluntario,Emergencia emer) {


                

                // El valor que necesitamos es el ID
              consulta = "INSERT INTO VOLUNTARIOXEMERGENCIA (IdVoluntario,IdEmergencia)" +
                                      "VALUES" + "(@vol,@eme);";
              connection = new SqlConnection(conexionBD.Cadenaconexion());


              SqlCommand cmd = new SqlCommand(consulta, connection);

              connection.Open();
               cmd.Parameters.AddWithValue("@vol", voluntario);
                cmd.Parameters.AddWithValue("@eme", emer);
     
        
               
                try
                {
                    //cmd.ExecuteNonQuery();
                    // MessageBox.Show("Entra antes de ejecutar");
                    cmd.ExecuteNonQuery();


                    MessageBox.Show("SAD NOTIFICA-Se ejecuto el query");
                }
                catch
                {
                    MessageBox.Show("SAD ALERTA-No se ejecuto el query");

                }
        
        }



    }
}


